package com.eorchis.module.util;

import java.math.BigDecimal;

/**
 * Title: UnitConvertUtil<br>
 * Description: <br>
 * Company: GoldGov<br>
 * Copyright @ 2012 GoldGov .All rights reserved.<br>
 * @createDate 2016-6-23
 * @author LongJZ
 * @version $Revision$
 */
public class UnitConvertUtil {

	public static String getPrintSize(long size) {
		Float s = Float.valueOf(size);
		// 如果字节数少于1024，则直接以B为单位，否则先除于1024，后3位因太少无意义
		if (s < 1024)
			return String.valueOf(s.intValue()) + "B";
		else
			s = s / 1024;
		// 如果原字节数除于1024之后，少于1024，则可以直接以KB作为单位
		// 因为还没有到达要使用另一个单位的时候
		// 接下去以此类推
		if (s < 1024)
			return String.valueOf(s.intValue()) + "KB";
		else
			s = s / 1024;
		if (s < 1024) {
			// 因为如果以MB为单位的话，要保留最后1位小数，
			// 因此，把此数乘以100之后再取余
			s = s * 100;
			return String.valueOf(new BigDecimal((s / 100)).setScale(2, BigDecimal.ROUND_HALF_UP)) + "MB";
		} else {
			// 否则如果要以GB为单位的，先除于1024再作同样的处理
			s = s * 100 / 1024;
			return String.valueOf(new BigDecimal((s / 100)).setScale(2, BigDecimal.ROUND_HALF_UP)) + "GB";
		}
	}

}
